package com.jeomo.sys.api.vo;

import com.jeomo.common.core.annocation.DictField;
import com.jeomo.common.core.enums.SexEnum;
import com.jeomo.sys.api.enums.UserStatusEnum;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <h3>jeomo</h3>
 * <p>用户信息</p>
 *
 * @author : qibotian
 * @date : 2020-11-18 20:01
 **/
public class UserVo implements Serializable {

    private static final long serialVersionUID = 1L;

    private String code;

    /**
     * 顶级组织
     */
    private String topOrgCode;

    /**
     * 所属组织
     */
    private String orgCode;

    /**
     * 所属组织名称
     */
    @DictField(sourceField="orgCode", beanName="orgServiceImpl")
    private String orgName;


    /**
     * 用户名/登录名
     */
    private String username;

    /**
     * 用户姓名，昵称
     */
    private String nickname;

    /**
     * 用户密码
     */
    private String password;

    /**
     * 工号
     */
    private String jobNumber;

    /**
     * 生日
     */
    private Date birthday;

    /**
     * 性别
     */
    private SexEnum sex;

    /**
     * 入职日期
     */
    private Date hireDate;

    /**
     * 座机号码
     */
    private String telephone;

    /**
     * QQ
     */
    private String qq;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 最后访问时间
     */
    private Date lastAccessTime;

    /**
     * 组织状态
     */
    private UserStatusEnum status;

    /**
     * 角色
     */
    private List<RoleVo> roles = new ArrayList<>();


    //*************getter setter***************


    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getTopOrgCode() {
        return topOrgCode;
    }

    public void setTopOrgCode(String topOrgCode) {
        this.topOrgCode = topOrgCode;
    }

    public String getOrgCode() {
        return orgCode;
    }

    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getJobNumber() {
        return jobNumber;
    }

    public void setJobNumber(String jobNumber) {
        this.jobNumber = jobNumber;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public SexEnum getSex() {
        return sex;
    }

    public void setSex(SexEnum sex) {
        this.sex = sex;
    }

    public Date getHireDate() {
        return hireDate;
    }

    public void setHireDate(Date hireDate) {
        this.hireDate = hireDate;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getQq() {
        return qq;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Date getLastAccessTime() {
        return lastAccessTime;
    }

    public void setLastAccessTime(Date lastAccessTime) {
        this.lastAccessTime = lastAccessTime;
    }

    public List<RoleVo> getRoles() {
        return roles;
    }

    public void setRoles(List<RoleVo> roles) {
        this.roles = roles;
    }

    public String getOrgName() {
        return orgName;
    }

    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }

    public UserStatusEnum getStatus() {
        return status;
    }

    public void setStatus(UserStatusEnum status) {
        this.status = status;
    }
}
